#!c:/perl/bin/perl.exe
##########################################################################################################################
##### a script to add emoticons to Wigan-Warriors.com
##########################################################################################################################

##########################################################################################################################
######  TODO list  #######################################################################################################
##########################################################################################################################
##########################################################################################################################

##########################################################################################################################
###### Bug list
##########################################################################################################################
##########################################################################################################################

##########################################################################################################################
# Includes
##########################################################################################################################

use lib qw(../cgi-bin);
use Sys::Hostname;
use Time::Local qw(timelocal);
use CGI;

use Diva::DB;
use Diva::DataObject;
use WiganRL::DataObject qw(:constants);
use WiganRL::DataObject::View;
use WiganRL::Search;

use Getopt::Long;
use File::Glob;
use File::Basename;

use strict;
#use warnings;

$|++;  #unbuffered

##########################################################################################################################
# get arguments
##########################################################################################################################

my $dir= "c:/wwcom/v2.0/html/images/useractions/emoticons";
my $type= "*.gif";
#my $permissions= 3;
#GetOptions ('type' => \$daily, 'weekly' => \$weekly);

WiganRL::DataObject->init_class();
WiganRL::Search->init_class();

##########################################################################################################################
# site setup and location variable declarations
##########################################################################################################################
my $host= hostname;
my ($SITE_BASE_URL,$SITE_BASE_DIR,$CGI_BASE_URL,$CGI_BASE_DIR,$EMAIL_BASE_DIR,$MAIL_SMTP_SERVER);
my ($SEND_EMAILS,$ADMIN_NAME,$ADMIN_EMAIL,$MAIL_SCRIPT,$SITE_DATA_DIR);

if ($host=~ /MIKE/i) {     ### home
    $SITE_BASE_URL= 'http://localhost/wigan';
    $SITE_BASE_DIR= 'c:/mdr/wwcom/v2.0/html';
    $SITE_DATA_DIR= 'c:/mdr/wwcom/v2.0/data';
    $CGI_BASE_URL= 'http://localhost/cgi-bin/wigan';
    $CGI_BASE_DIR= 'c:/mdr/wwcom/v2.0/cgi-bin';
} else {    ##server
    $SITE_BASE_URL= 'http://wigan.smb.man.ac.uk/wigan';
    $SITE_BASE_DIR= 'c:/wwcom/v2.0/html';    
    $SITE_DATA_DIR= 'c:/wwcom/v2.0/data';
    $CGI_BASE_URL= 'http://wigan.smb.man.ac.uk/wigan';
    $CGI_BASE_DIR= 'c:/wwcom/v2.0/cgi-bin';
}

my $cgi= CGI->new();
$cgi->param('CGI_BASE_URL',$CGI_BASE_URL);
$cgi->param('SessionID','');

my $dbh= Diva::DB->new();
$dbh->set( {
    DATABASE_NAME       => 'wwcom',
    DATABASE_SERVER     => 'localhost:3306',
    DATABASE_USERNAME   => 'wwcom',
    DATABASE_PASSWORD   => 'wwcom',
    DATABASE_TYPE       => 'mysql',
    } );
$dbh->connect();
$dbh->debug(0);

WiganRL::DataObject->dbh($dbh);
WiganRL::DataObject->cgi($cgi);
WiganRL::Search->dbh($dbh);
Diva::DataObject->init_contenttypes();  #loads contenttypes

#get threads
my $s= WiganRL::Search->new;
$s->table('VIEW');
$s->groupby('FK_HEAD_ID');
$s->groupbycols(', MAX(OBJECT_DATE) as THREAD_DATE, MIN(OBJECT_DATE) as HEAD_DATE');
$s->orderby('OBJECT_DATE');

#delete contents of table
my ($rv)= $dbh->dbdelete('OBJECT_THREAD','');

my $s2= WiganRL::Search->new;
$s2->table('VIEW');
$s2->orderby('OBJECT_DATE desc');

for (@{$s->search}) {
    $s2->where('FK_HEAD_ID = '.$_->data('FK_HEAD_ID'));
    my $res= $s2->search;
    my $nviews= 0;
    for (@$res) {
        $nviews+= $_->data('OBJECT_NVIEWS');
    }
    $cgi->param('OBJECT_THREAD_NVIEWS',$nviews);
    
    my ($rv,$oid)= $dbh->insert('OBJECT_THREAD',['FK_HEAD_ID','OBJECT_THREAD_HEAD_OBJECT_DATE',
        'OBJECT_THREAD_LATEST_ID','OBJECT_THREAD_LATEST_OBJECT_DATE','OBJECT_THREAD_EXTRA',
        'OBJECT_THREAD_NOBJECTS','OBJECT_THREAD_NVIEWS'],
        [[$_->data('FK_HEAD_ID'),$_->data('HEAD_DATE'),$res->[0]->id,$_->data('THREAD_DATE'),
        '',$#$res+1,$nviews]]);
    
    print "Updated Thread: ".$_->data('FK_HEAD_ID')."\n";
}
    
exit(0);

